SEAT: A Taxonomy to Characterize Automation in Software Engineering
نویسندگان
چکیده
Reducing cost and time required to build high quality software is a major goal for software developers. Building tools and techniques that can help achieve such a goal is the chief aim for Automated Software Engineering (ASE) researchers. However, in order to be effective an ASE researcher or professional must understand the characteristics of both successful and not-so-successful ASE tools, and the constituent techniques employed by such ASE tools. In this paper we present such a characterization of ASE tools and major constituent techniques from different areas of computer science and engineering that have been employed by such ASE tools. To develop the characterization we carried out an extensive systematic literature review over about 1175 ASE research articles. One of our key goal was to identify useful relationships/patterns among ASE tools, their constituent techniques and the software development life cycle (SDLC) activities that these tools targeted. For example, we observed that the predominantly used constituent techniques can be classified into 11 categories. Only ≈26% ASE tools (from our sample) leveraged more than one constituent techniques to achieve their goal. We also observed that a significant number (≈63%) of ASE tools did not have much impact. More than 50% of the sampled ASE tools targeted Testing and Verification activities possibly implying the ease of automation there. In terms of changes in popularity of constituent techniques with time we did not observe any clear trend. We organized the results of our characterization as a taxonomy called SEAT (Software Engineering Automation Taxonomy). A salient feature of SEAT is that it focuses on automation of activities from all phases of SDLC. Such a taxonomy, among other applications, shall enable synthesizing new automation tools for different SDLC activities. Re-composing existing systems to achieve better features will also be possible. Further, the taxonomy has been realized as a graph database using neo4j® (an open source graph database), which can be queried using an SQL like language. The graph database allowed us to uncover hidden relationships by way of exhaustive search for connections and paths between different nodes (i.e. concepts). We demonstrate the efficacy of SEAT by discussing few practical use cases.
منابع مشابه
Investigating the usability of an Integrated Research Automation System (SEAT): Heuristic Evaluation
Background and Objectives: Today, many hardware and software products, including office automation software, and web-based websites are used by employees, including professors and employees of different departments in offices. Websites are considered one of the main aspects of competition in any organization. This study aims to investigate the usability of the Integrated Research Automation Sys...
متن کاملWays of Applying Artificial Intelligence in Software Engineering
As Artificial Intelligence (AI) techniques have become more powerful and easier to use they are increasingly deployed as key components of modern software systems.While this enables new functionality and often allows better adaptation to user needs it also creates additional problems for software engineers and exposes companies to new risks. Some work has been done to better understand the inte...
متن کاملObjects Identification in Object-Oriented Software Development - A Taxonomy and Survey on Techniques
Analysis and design of object oriented is onemodern paradigms for developing a system. In this paradigm, there are several objects and each object plays some specific roles. Identifying objects (and classes) is one of the most important steps in the object-oriented paradigm. This paper makes a literature review over techniques to identify objects and then presents six taxonomies for them. The f...
متن کاملDeclarative Semantics in Object-Oriented Software Development - A Taxonomy and Survey
One of the modern paradigms to develop an application is object oriented analysis and design. In this paradigm, there are several objects and each object plays some specific roles in applications. In an application, we must distinguish between procedural semantics and declarative semantics for their implementation in a specific programming language. For the procedural semantics, we can write a ...
متن کاملOn System Architectures for Virtual Environments
In the last years, the number of virtual reality applications has dramatically increased. Despite the huge effort that went into development, little foundation has been laid for system architectures that embody clear concepts and software engineering methodologies. We analyse a number of existing systems that illustrate what we believe are core concepts. A taxonomy is developed that allows to c...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2018